home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PsL Monthly 1993 December
/
PSL Monthly Shareware CD-ROM (December 1993).iso
/
prgmming
/
dos
/
basic
/
pbtool.exe
/
PBCOPY.BAS
< prev
next >
Wrap
BASIC Source File
|
1991-10-31
|
3KB
|
92 lines
'----------------------------------------------------------
' PROGRAM: PBCOPY.BAS PROGRAMMER: A. KELLETT
' DATE-WRITTEN: 06/13/91
' USING POWER BASIC V2.10A
'
' THIS PROGRAM COPIES FILES AS FAST AS POSSIBLE
'
' VERSION: 0.95 LAST UPDATED: 10/31/91
'----------------------------------------------------------
' WHILE TESTING, COPYING A 1.8MB DBASE OVERLAY WAS TIMED AT:
' PBCOPY = 13 SEC DOS COPY = 9 SEC
'
CLS
SIZE.BUFFER1% = 32000
SIZE.BUFFER2% = 15000
SIZE.BUFFER3% = 5000
SIZE.BUFFER4% = 1500
SIZE.BUFFER5% = 100
VERSION$ = "0.95"
PRINT "PBCOPY V";VERSION$;" - THIS PROGRAM COPIES A SINGLE FILE. - ANDY K."
LOCATE 5,5:INPUT "NAME OF INPUT FILE: ";FILENAME1$
IF FILENAME1$ = "" THEN
PRINT " YOU MUST ENTER A FILE NAME -- PROGRAM ENDING. "
END
END IF
'*** CHECK VALIDITY OF INPUT FILE NAME ***
OPEN FILENAME1$ FOR BINARY AS #1
IF LOF(1) < 1 THEN
PRINT " THE INPUT FILE DOES NOT EXISTS."
CLOSE #1
KILL FILENAME1$
DELAY 1.5
LOCATE 22,1
END
END IF
CLOSE #1
LOCATE 6,5:INPUT "NAME OF OUTPUT FILE: ";FILENAME2$
'*** CHECK VALIDITY OF OUTPUT FILE NAME ***
OPEN FILENAME2$ FOR BINARY AS #2
IF LOF(2) > 1 THEN
PRINT " THE OUTPUT FILE ALREADY EXISTS."
CLOSE #2
KILL FILENAME2$
DELAY 2.5
LOCATE 22,1
END
END IF
CLOSE #2
'*** OPEN BOTH FILES, READ & PROCESS & WRITE, CLOSE BOTH FILES ***
START$ = TIME$
LOCATE 14,5:PRINT "WORKING ON BYTE: "
OPEN FILENAME1$ FOR BINARY AS #1
OPEN FILENAME2$ FOR BINARY AS #2
FILE1EOF& = LOF(1)
LOCATE 13,5:PRINT USING "TOTAL BYTES IN FILE: #,###,###";FILE1EOF&
WHILE RECPOSITION& < FILE1EOF&
IF RECPOSITION& < (FILE1EOF& - SIZE.BUFFER1%) THEN
NUM.BYTES% = SIZE.BUFFER1%
ELSE
IF RECPOSITION& < (FILE1EOF& - SIZE.BUFFER2%) THEN
NUM.BYTES% = SIZE.BUFFER2%
ELSE
IF RECPOSITION& < (FILE1EOF& - SIZE.BUFFER3%) THEN
NUM.BYTES% = SIZE.BUFFER3%
ELSE
IF RECPOSITION& < (FILE1EOF& - SIZE.BUFFER4%) THEN
NUM.BYTES% = SIZE.BUFFER4%
ELSE
IF RECPOSITION& < (FILE1EOF& - SIZE.BUFFER5%) THEN
NUM.BYTES% = SIZE.BUFFER5%
ELSE
NUM.BYTES% = 1
END IF
END IF
END IF
END IF
END IF
SEEK 1, RECPOSITION&
GET$ 1, NUM.BYTES%, CHAR$
PUT$ 2, CHAR$
RECPOSITION& = RECPOSITION& + NUM.BYTES%
LOCATE 14, 22:PRINT USING "#,###,###";RECPOSITION&
WEND
CLOSE #2:CLOSE #1
LOCATE 16,10:PRINT "PROGRAM COMPLETED"
PRINT "START: ";START$;" FINISHED: ";TIME$
END